for blog reading i use the amazing (and free!) software from newsgator called NetNewsWire.
i discovered an applescript for posting post currently being read to my delicious bookmarks.
this was pretty good as it was, but, but i wanted a bit more, so i modified it to prompt for additional tags.
i have also added support for growl notifications, if growl is running.
when you run the script for the first time, it prompts you enter your username, password, and default tags.
you only need to enter that stuff once: after that it just runs.
additionally, i set up a quickilver trigger to run when i push “control + d”, scoped only to NNW.
so, now every time i wish to save whatever it is i am reading in NNW, i just hit “control + d” and it prompts for tags, then runs in the background.
its fast and works great.
to use it yourself, copy the script below and open the Script Editor (included in mac os x).
paste it in, and save it to:
~/Library/Scripts/Applications/NetNewsWire/to read in delicious.scpt
property usernamePasswordString : "" property tagsString : "" on run checkUsernameAndPassword() postToDelicious() end run on postToDelicious() tell application "NetNewsWire" if exists selectedHeadline then set theResults to display dialog "Enter tags for this item" default answer "" if button returned of theResults is "OK" then set myTags to text returned of theResults end if set thisHeadline to (title of selectedHeadline) set u to "\"?&url=" & (URL of selectedHeadline) & ¬ "&description=" & (title of selectedHeadline) & ¬ "&tags=" & tagsString & " " & myTags & "\"" set curlStatement to "/usr/bin/curl -u " & usernamePasswordString & " -d " & u & " https://api.del.icio.us/v1/posts/add" set retValue to do shell script curlStatement if retValue contains "wrong" then display dialog "Headline did not post to Delicious. Something went wrong." else set the enabledNotificationsList to ¬ {"Item Posted to Delicious"} tell application "System Events" set growlRunning to ¬ (count of (every process whose name is "GrowlHelperApp")) > 0 end tell if growlRunning then tell application "GrowlHelperApp" register as application ¬ "scriptNetNewsWire" all notifications enabledNotificationsList ¬ default notifications enabledNotificationsList ¬ icon of application "NetNewsWire" notify with name ¬ "Item Posted to Delicious" title thisHeadline description "Posted to Delicious with tags: \"" & myTags & ¬ "\"" application name "scriptNetNewsWire" icon of application "NetNewsWire" end tell end if end if else display dialog "Please select a headline to post to del.icio.us" end if end tell end postToDelicious on checkUsernameAndPassword() -- Check to see if the file where our username and password are stored exists try do shell script "cd " & POSIX path of (path to preferences as text) & "; ls | grep com.flickerbulb.toread.txt" try set prefFile to ((path to preferences as text) & "com.flickerbulb.toread.txt") open for access file prefFile with write permission set prefs to read file prefFile using delimiter {return} close access file prefFile set usernamePasswordString to item 1 of prefs set tagsString to item 2 of prefs on error e close access file prefFile end try on error set username to text returned of (display dialog "Please enter your Delicious username" default answer "username") set pass to text returned of (display dialog "Please enter your Delicious password" default answer "password") set tags to text returned of (display dialog "Please enter any desired default tags" default answer "toread ") try set prefFile to ((path to preferences as text) & "com.flickerbulb.toread.txt") open for access file prefFile with write permission set eof of file prefFile to 0 write username & ":" & pass & {return} & tags to file prefFile close access file prefFile on error e close access file prefFile end try set usernamePasswordString to username & ":" & pass set tagsString to tags & " " end try end checkUsernameAndPassword |